use std::fs;
use std::path::Path;
use actix_web::{post, web, HttpResponse};
use serde::Deserialize;
use crate::response::api_response::ApiResponse;

#[derive(Deserialize)]
struct SetPathRequest {
    path: String,
    token: String, // 用户登录 token
}

#[post("/set_default_storage_path")]
async fn set_default_storage_path(req: web::Json<SetPathRequest>) -> HttpResponse {
    let path = &req.path;
    let token = &req.token; // 在实际应用中，您需要验证 token

    // 检查路径是否存在
    if Path::new(path).exists() {
        // 返回成功，如果路径已存在
        ApiResponse::success(path.clone())
    } else {
        // 尝试创建目录
        match fs::create_dir_all(path) {
            Ok(_) => ApiResponse::success(path.clone()), // 返回成功
            Err(err) => ApiResponse::<()>::fail(2, &format!("Failed to create path: {}", err)),
        }
    }
}